package com.dongbao.util;

import com.intellij.psi.PsiComment;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiVariable;
import com.intellij.psi.impl.source.PsiClassImpl;
import com.intellij.psi.util.PsiElementFilter;
import com.intellij.psi.util.PsiTreeUtil;

public class PsiUtil {

    /**
     * 获取类中所有声明的变量,包括方法中声明的
     * */
    public static PsiElement[] getClassAllVariables(PsiElement element){
        PsiElement[] variables = PsiTreeUtil.collectElements(element, new PsiElementFilter() {
            public boolean isAccepted(PsiElement e) {
                if (e instanceof PsiVariable) {
                    return true;
                }
                return false;
            }
        });
        return variables;
    }

    /**
     * 获取节点中所有的注释信息
     * */
    public static PsiElement[] getElementAllCommen(PsiElement element){
        PsiElement[] variables = PsiTreeUtil.collectElements(element, new PsiElementFilter() {
            public boolean isAccepted(PsiElement e) {
                if (e instanceof PsiComment) {
                    return true;
                }
                return false;
            }
        });
        return variables;
    }

}
